# -*- coding = utf-8 -*-
# @name :
# @Time : 2022/09/5 0005 14:45
# @Author : tang1jun
# @File : lyj_utils.py
import os
import zipfile
import xlwt

"""
自定义工具类
"""


# 压缩多个文件
def zip_files(files, zip_name):
    """
    :param files: 需要压缩的文件 list （完整路径）
    :param zip_name: 压缩后的文件名 str
    """
    zipf = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED)
    for file in files:
        print('正在压缩文件', file)
        zipf.write(file, os.path.basename(file))
    zipf.close()
    print('压缩文件 完成')


# 写入txt
def to_txt(to_path, data_str):
    """
    w	打开一个文件只用于写入。如果该文件已存在则打开文件，并从开头开始编辑，即原有内容会被删除。如果该文件不存在，创建新文件。
    w+	打开一个文件用于读写。如果该文件已存在则打开文件，并从开头开始编辑，即原有内容会被删除。如果该文件不存在，创建新文件。

    a	打开一个文件用于追加。如果该文件已存在，文件指针将会放在文件的结尾。也就是说，新的内容将会被写入到已有内容之后。如果该文件不存在，创建新文件进行写入。
    a+	打开一个文件用于读写。如果该文件已存在，文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在，创建新文件用于读写。

    """

    with open(to_path, 'a', errors='ignore') as f:  # a 追加的方式 忽略提示
        f.write(data_str)  # 文件的写操作
        f.write("\n")  # 根据需要添加的换行


# 写入xls
def to_xls(topath, row_list):
    """
    保存数据到xls
    :param topath: 保存路径 str
    :param row_list: 保存的数据 list
    :return:
    """

    writeexcel = xlwt.Workbook()  # 创建工作表
    sheet1 = writeexcel.add_sheet(u"Sheet1", cell_overwrite_ok=True)  # 创建sheet
    row = 0
    for colours in row_list:
        for i in range(0, len(colours)):
            sheet1.write(row, i, colours[i])
        row = row + 1
    writeexcel.save(topath)

    print("写入xls OK")


class LyjUtils:

    def __init__(self):
        print("初始化...")


if __name__ == '__main__':
    print("**********开始测试************")
    lis = [
        ['序号', '姓名', '年龄'],
        ['1', '张三', '18'],
        ['2', '张云', '16'],
        ['3', '李四', '19'],
    ]

    # to_xls("E:\\python库\\zhenhao.xls", lis)
    # to_txt("E:\\python库\\新内容.txt", "我是新的内容")
    # zip_files(['E:\\python库\\zhenhao.xls', "E:\\python库\\新内容.txt"], "E:\\python库\\testzipfiles.zip")
